package com.zb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.entity.AccounLoginInfo;
import com.zb.entity.ZjCodeUserRegister;
import com.zb.vo.CodeRegisterAddressVo;
import com.zb.vo.CodeUserChangeLogVo;
import com.zb.vo.CodeUserRegisterVo;

import java.util.List;

/**
 * <p>
 * 编码用户登记表 服务类
 * </p>
 *
 * @author WEN
 * @since 2023-09-04
 */
public interface ZjCodeUserRegisterService extends IService<ZjCodeUserRegister> {

    /**
     * 编码关联用户登记
     * @param loginInfo 登录信息
     * @param codeId 编码ID
     * @param userRegisterVo 用户信息
     */
    void saveCodeRegister(AccounLoginInfo loginInfo, Long codeId, CodeUserRegisterVo userRegisterVo);

    /**
     * 保存变更用户
     * @param loginInfo
     * @param userRegisterVo
     */
    void saveChangeCodeUser(AccounLoginInfo loginInfo, CodeUserChangeLogVo userRegisterVo);

    /**
     * 根据ID获取登记用户信息
     * @param ids
     * @return
     */
    List<ZjCodeUserRegister> getByIds(List<Long> ids);

    /**
     * 变更用户登记地址
     * @param loginInfo
     * @param codeId 编码ID
     * @param addressVo 新地址对象
     */
    void updateCodeRegisterAddress(AccounLoginInfo loginInfo, Long codeId, CodeRegisterAddressVo addressVo);

    /**
     * 根据客户ID获取编码登记信息
     * @param userIds 客户ID
     * @return
     */
    List<ZjCodeUserRegister> getByUserIds(List<Long> userIds);
}
